package com.lyy.config;


import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author Liangyaoyun
 */
@Configuration
public class SpringDocConfig {
    private final static String TITLE = "lesson-server项目接口文档";
    private final static String VERSION = "v1.0.1";
    private final static String EMAIL = "yy06200210@163.com";
    private final static String NAME = "JoeZhou";
    private final static String URL = "http:/localhost:5277";
    private final static String DESCRIPTION = "<em>" +
            "lesson项目全名绝对在线课堂，是一个可以在线购买视频，观看视频的电商网站，" +
            "lesson-server是普通用户后台子项目，基于SpringBoot + MyBatis框架开发，" +
            "使用前后端分离技术，用户可注册，可使用账号密码登录本系统，" +
            "也可以使用手机号和验证码登录本系统，用户在未登录状态下，提供浏览首页轮播图广告，" +
            "分页查看视频列表，点击查看视频详情，搜索视频等功能入口，用户在登录状态下，" +
            "提供查询个人信息，修改个人信息，修改个人密码，上传个人头像，查询个人积分，" +
            "注销账号，登出账号，批量添加指定商品到购物车，查看购物车商品，" +
            "批量删除购物车内商品，清空购物车，下单购买商品等功能入口，用户在支付成功状态下，" +
            "提供查看个人订单，删除个人订单，在线观看视频，实时发送弹幕或评论等功能入口</em>";

    /** 通用信息展板 */
    @Bean
    public OpenAPI commonInfo() {
        return new OpenAPI().info(new Info()
                .title(TITLE)
                .description(DESCRIPTION)
                .version(VERSION)
                .contact(new Contact().email(EMAIL).name(NAME).url(URL)));
    }

    /** 整合Knife4j必须添加这个@Bean */
    @Bean
    public GroupedOpenApi publicApi(){
        return GroupedOpenApi.builder()
                .setGroup(TITLE)
                .pathsToMatch("/**")
                .build();
    }
}
